﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Dados.ValueObjects;
using Dados.Interfaces;
using Dados.INFTURDataSetTableAdapters;

namespace Dados.ClassesSQLServer
{
    public class UsuarioSQLServer : IUsuario
    {
        T_USUARIOTableAdapter usuarioTA = new T_USUARIOTableAdapter();


        #region IUsuario Members

        public int Insere(UsuarioVO cVO)
        {
             try
            {
                return usuarioTA.Insert(cVO.Login, cVO.Tipo, cVO.Senha, cVO.Nome, cVO.Email);
            }
            catch (Exception e)
            {
                throw new Exception(e.Message);
            }
        }

        public int Atualiza(UsuarioVO cVO)
        {
            try
            {
                return usuarioTA.Update(cVO.Tipo, cVO.Senha, cVO.Nome, cVO.Email, cVO.Login);
            }
            catch (Exception e)
            {
                throw new Exception(e.Message);
            }
        }

        public int Remove(string login)
        {
            try
            {
                return usuarioTA.Delete(login);
            }
            catch (Exception e)
            {
                throw new Exception(e.Message);
            }
        }

        public UsuarioVO Consulta(string login)
        {
            try
            {
                UsuarioVO cVO = null;
                INFTURDataSet.T_USUARIODataTable dtUsuario = usuarioTA.GetUsuarioPorLogin(login);
                if (dtUsuario.Count > 0)
                {
                    cVO = new UsuarioVO();
                    cVO.Login = login;
                    cVO.Nome = dtUsuario[0].tx_nome;
                    cVO.Email = dtUsuario[0].tx_email;
                    cVO.Senha = dtUsuario[0].tx_senha;
                    cVO.Tipo = dtUsuario[0].nr_tipo;
                    
                }
                return cVO;
            }
            catch (Exception e)
            {
                throw new Exception(e.Message);
            }
        }

        public List<UsuarioVO> ConsultaTodos()
        {
            try
            {
                List<UsuarioVO> lcVO = new List<UsuarioVO>();
                INFTURDataSet.T_USUARIODataTable dt = usuarioTA.GetData();

                foreach (INFTURDataSet.T_USUARIORow cRow in dt)
                {
                    UsuarioVO cVO = new UsuarioVO();
                    cVO.Login = cRow.tx_login;
                    cVO.Nome = cRow.tx_nome;
                    cVO.Email = cRow.tx_email;
                    cVO.Senha = cRow.tx_senha;
                    cVO.Tipo = cRow.nr_tipo;
                

                    lcVO.Add(cVO);
                }

                return lcVO;
            }
            catch (Exception e)
            {
                throw new Exception(e.Message);
            }
        }

        #endregion
    }
}
